package tp1
class Materia(val nombre:String) extends Calculable{
  var año: Int = _
  var cuatrimestre: Int = _
  var cursos: List[Curso] = List()
  
  def initialize(año:Int, cuatri:Int){
    this.año = año
    this.cuatrimestre = cuatri
  }
  
  def agregarUnCurso(curso:Curso){
    this.cursos = this.cursos :+ curso
  }
  
  def pasarNota(alumno:Estudiante, cursada:Cursada){
    alumno.actualizarFoja(cursada)
  }
  
  def inscribirAlumno(alumno:Estudiante, curso:Curso){
    curso.anotarAlumno(alumno)
    alumno.inscribir(curso)
  }
  
  def getCursadas():List[Cursada] = {
    var notas = List[Cursada]()
    for( elem <- this.cursos){
      notas = List.concat(notas, elem.getCursadas)
    }
    notas
  }
}

object Materia extends Application{
  var orga =new Materia("Orga")
  var alumno = new Estudiante("Pepe", 23100)
  var aprobada = new Aprobada()
  aprobada.initialize(9,new Materia("Orga"),new Curso(new Docente("profe")))
  orga.pasarNota(alumno, aprobada)
  println("foja del alumno Pepe : " + alumno.foja.notas)
  println(alumno.foja.notas(0))
  
  var curso = new Curso(new Docente("profesor xavier"))
  orga.cursos = orga.cursos :+ curso
  orga.inscribirAlumno(alumno, curso)
  println(curso.estudiantes)
  println("Se inscribio a " + curso.estudiantes(0) + " al curso")
  println("Lista de cursos a los que asiste Pepe :" + alumno.cursos)
  println(alumno.cursos.length)
  
}